# -*- coding : utf-8 -*-
# coding: utf-8
"""
单例模式的全局配置管理
"""
from datetime import timezone
from datetime import timedelta

class Config():
    # 静态属性，所有实例只有一个备份，用户实现--单例模型或者资源管理还是有些用处的
    IPADDR = '0.0.0.0'
    PORT = 5000
    #CST_TZ = timezone('Asia/Shanghai')
    CST_TZ = timezone(timedelta(hours=8))

# 定义开发模式下的配置类, 开发环境在windows下
class DevelopmentConfig(Config):
    DEBUG = True
    TESTING = False
    PKL_PATH = 'D:/path/'


# 定义生产模式下的配置类, 生产环境在linux下
class ProductionConfig(Config):
    DEBUG = False
    TESTING = False
    PKL_PATH = '/path/'


# 定义单元测试模式下的配置类
class TestingConfig(Config):
    DEBUG = True
    TESTING = True  # 只有开启 testing 的时候，被测试的代码出现问题的时候，才会定位到被测试代码那一行
    PKL_PATH = '/'

# 定义字典，实现动态的加载不同的配置类
config_dict = {
    'development': DevelopmentConfig,
    'production': ProductionConfig
    #'testing': TestingConfig
}
